package com.buercorp.wangyu.core1.ch12.threads;

import java.util.concurrent.locks.ReentrantLock;

public class ThreadTest9 {
    /**
     * 创建了一个ReentrantLock对象，并在doSomething方法中使用lock()方法获取锁，在finally块中使用unlock()方法释放锁。
     * 这样可以保证在多线程环境下，只有一个线程能够进入临界区代码，从而避免了竞态条件和死锁等问题。
     *
     *
     * @author liyiyu
     */

        private final ReentrantLock lock = new ReentrantLock();

        public void doSomething() {
            // 获取锁
            lock.lock();
            try {
                // 执行临界区代码
                System.out.println("Doing something...");
            } finally {
                // 释放锁
                lock.unlock();
            }
        }

//        public static void main(String[] args) {
//            ReentrantLockExample example = new ReentrantLockExample();
//            Thread thread1 = new Thread(example::doSomething);
//            Thread thread2 = new Thread(example::doSomething);
//            thread1.start();
//            thread2.start();
//        }
    }




